package 炫彩元素类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_形状文本 形状对象文本.
type X结构_形状文本 struct {
	X结构_形状对象基类
}

// 形状文本_创建, 创建形状对象文本.
//
// x: X坐标.
//
// y: Y坐标.
//
// cx: 宽度.
//
// cy: 高度.
//
// pName: 文本内容.
//
// hParent: 父对象句柄.
func X创建形状文本(坐标, Y坐标, 宽度, 高度 int32, 文本内容 string, 父对象句柄 int) *X结构_形状文本 {
	p := &X结构_形状文本{}
	p.X设置句柄(xc.X形状文本_创建(坐标, Y坐标, 宽度, 高度, 文本内容, 父对象句柄))
	return p
}

// 从句柄创建对象.
func X创建形状文本并按句柄(句柄 int) *X结构_形状文本 {
	p := &X结构_形状文本{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建形状文本并按名称(名称 string) *X结构_形状文本 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_形状文本{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建形状文本并按UID(UID int32) *X结构_形状文本 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_形状文本{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建形状文本并按UID名称(名称 string) *X结构_形状文本 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_形状文本{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 形状文本_置文本, 设置文本内容.
//
// pName: 文本内容.
func (s *X结构_形状文本) X设置文本(文本内容 string) *X结构_形状文本 {
	xc.X形状文本_设置文本(s.X句柄, 文本内容)
	return s
}

// 形状文本_取文本, 获取文本内容.
func (s *X结构_形状文本) X取文本() string {
	return xc.X形状文本_取文本(s.X句柄)
}

// 形状文本_取文本长度, 获取文本长度.
func (s *X结构_形状文本) X取文本长度() int32 {
	return xc.X形状文本_取文本长度(s.X句柄)
}

// 形状文本_置字体.
//
// hFontx: 字体句柄.
func (s *X结构_形状文本) X设置字体(字体句柄 int) *X结构_形状文本 {
	xc.X形状文本_设置字体(s.X句柄, 字体句柄)
	return s
}

// 形状文本_取字体, 返回字体句柄.
func (s *X结构_形状文本) X取字体() int {
	return xc.X形状文本_取字体(s.X句柄)
}

// 形状文本_置文本颜色, 设置文本颜色.
//
// color: xc.RGBA 颜色值.
func (s *X结构_形状文本) X设置文本颜色(ABGR颜色值 int) *X结构_形状文本 {
	xc.X形状文本_设置文本颜色(s.X句柄, ABGR颜色值)
	return s
}

// 形状文本_取文本颜色.
func (s *X结构_形状文本) X取文本颜色() int {
	return xc.X形状文本_取文本颜色(s.X句柄)
}

// 形状文本_置文本对齐.
//
// align: 文本对齐方式, TextFormatFlag_, TextAlignFlag_, TextTrimming_.
func (s *X结构_形状文本) X设置文本对齐(对齐方式 xcc.X文本对齐) *X结构_形状文本 {
	xc.X形状文本_设置文本对齐(s.X句柄, 对齐方式)
	return s
}

// 形状文本_置偏移, 设置内容偏移.
//
// x: X坐标.
//
// y: Y坐标.
func (s *X结构_形状文本) X设置偏移(坐标, Y坐标 int32) *X结构_形状文本 {
	xc.X形状文本_设置偏移(s.X句柄, 坐标, Y坐标)
	return s
}
